package com.ruoyi.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
*
* @TableName order_info
*/
@Data
public class OrderInfo implements Serializable {

    /**
    * 订单ID
    */
    private String id;
    /**
    * 乘客ID
    */
    private String passengerId;
    /**
    * 乘客手机号
    */

    private String passengerPhone;
    /**
    * 司机ID
    */
    private Long driverId;

    private double aboutPrice;
    /**
    * 司机手机号
    */

    private String driverPhone;
    /**
    * 车辆Id
    */
    private Long carId;
    /**
    *
    */

    private String vehicleType;
    /**
    * 发起地行政区划代码
    */

    private String address;
    /**
    * 订单发起时间
    */

    private LocalDateTime orderTime;
    /**
    * 预计用车时间
    */

    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date departTime;
    /**
    * 预计出发地点详细地址
    */

    private String departure;
    /**
    * 预计出发地点经度
    */

    private Double depLongitude;
    /**
    * 预计出发地点纬度
    */

    private Double depLatitude;
    /**
    * 预计目的地
    */

    private String destination;
    /**
    * 预计目的地经度
    */

    private Double destLongitude;
    /**
    * 预计公里数
    */

    private BigDecimal expectDistance;
    /**
    * 预计目的地纬度
    */

    private Double destLatitude;
    /**
    * 坐标加密标识1:GCJ-02测绘局标准2:WGS84 GPS标准3:BD-09 百度标准4:CGCS2000 北斗标准0:其他
    */
    private Integer encrypt;
    /**
    * 运价类型编码
    */

    private String fareType;
    /**
    *
    */
    private Integer fareVersion;
    /**
    * 接单时车辆经度
    */

    private String receiveOrderCarLongitude;
    /**
    * 接单时车辆纬度
    */

    private String receiveOrderCarLatitude;
    /**
    * 接单时间，派单成功时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date receiveOrderTime;
    /**
    * 机动车驾驶证号
    */

    private String licenseId;
    /**
    * 车辆号牌
    */

    private String vehicleNo;
    /**
    * 司机去接乘客出发时间
     *
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date toPickUpPassengerTime;
    /**
    * 去接乘客时，司机的经度
    */

    private Double toPickUpPassengerLongitude;
    /**
    * 去接乘客时，司机的纬度
    */

    private Double toPickUpPassengerLatitude;
    /**
    * 去接乘客时，司机的地点
    */

    private String toPickUpPassengerAddress;
    /**
    * 司机到达上车点时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date driverArrivedDepartureTime;
    /**
    * 接到乘客，乘客上车时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date pickUpPassengerTime;
    /**
    * 接到乘客，乘客上车经度
    */

    private Double pickUpPassengerLongitude;
    /**
    * 接到乘客，乘客上车纬度
    */

    private Double pickUpPassengerLatitude;
    /**
    * 乘客下车时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date passengerGetoffTime;
    /**
    * 乘客下车经度
    */

    private Double passengerGetoffLongitude;
    /**
    * 乘客下车纬度
    */

    private Double passengerGetoffLatitude;
    /**
    * 订单撤销时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date cancelTime;
    /**
    * 撤销发起者：1:乘客2:驾驶员3:平台公司
    */
    private Integer cancelOperator;
    /**
    * 撤销类型代码1:乘客提前撤销2:驾驶员提前撤销3:平台公司撤销4;乘客违约撤销5:驾驶员违约撤销
    */
    private Integer cancelTypeCode;
    /**
    * 载客里程（米）
    */
    private Long driveMile;
    /**
    * 载客时间(分)
    */
    private Long driveTime;
    /**
    * 订单状态1：订单开始 2：司机接单 3：去接乘客 4：司机到达乘客起点 5：乘客上车，司机开始行程 6：到达目的地，行程结束，未支付 7：发起收款 8: 支付完成 9.订单取消'
    */
    private Integer orderStatus;
    /**
    *
    */
    private Double price;
    /**
    * 创建时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date gmtCreate;
    /**
    * 修改时间
    */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date gmtModified;
    /**
    * 实际公里数
    */
    private BigDecimal realDistance;
    private Integer chargebackNumber;

    @Schema(description = "车辆类型1:新能源2:舒适型3:豪华型4:商务型")
    private Integer carType;


    @Schema(description = "预计时长(分钟)")
    private Integer estimatedDuration;

    @Schema(description = "预付金额")
    private Double advanceAmount;

    @Schema(description = "是否预约用车1:预约用车2:实时用车")
    private Integer isReserve;
}
